package com.shujia.jichu

object Demo8Apply {
  def main(args: Array[String]): Unit = {
    //创建一个手机对象
//    val p1: Phone = new Phone("华为P70", 8000)
//    println(p1)

//    val p2: Phone = Phone.apply("华为P70", 8000)
//    println(p2)

    /**
     * 这里实际上调用的就是apply函数
     * 由调用apply函数得到的对象，称之为伴生对象
     */
    val p3: Phone2 = Phone("华为P70", 8000)
    println(p3)


  }
}


object Phone{
  /**
   * apply是object中的一个特殊的函数，可以直接使用object名字代替函数名，进行调用传参
   */
  def apply(kind: String, price: Int): Phone2 = new Phone2(kind, price)
}

class Phone2(kind: String, price: Int) {
  override def toString: String = s"品牌:$kind, 价格:$price"
}
